package com.me.myFramework.myAop.aop200.advice.method;

import com.me.myFramework.myAop.aop200.advice.Advice;

import java.lang.reflect.Method;

/**
 * 自己实现 AOP-200：  <p></p>
 *
 * 方法执行前的增强逻辑，相当于《模板模式》中的模板方法类
 *
 * @author ME
 * @date 2021/9/26
 */
public interface MethodBeforeAdvice extends Advice {

    /**
     * 方法执行前增强逻辑的模板方法
     * @param method        被调用的方法方法
     * @param args          方法参数
     * @param target        目标对象
     * @throws Throwable    Throwable
     */
    void before(Method method, Object[] args, Object target) throws Throwable;

}
